package com.transfiguro.converters;

import com.transfiguro.datamodel.csmodels.*;
import com.transfiguro.datamodel.javamodels.*;

/**
 * This interface defines the methods that will be implemented
 * by statement converters. Depending on the type of statement passed,
 * a convert method will be called which will convert it to a C# statement model
 */
public interface StatementDispatcher {
    CSForEachStatement convert(ForEachStatement model);

    CSNCBlock convert(NCBlock model);

    CSGenericMethodCall convert(MethodCallStatement model);

    CSForStatement convert(ForStatement model);

    CSBlockStatement convert(BlockStatement model);

    CSVariableDeclarationStatement convert(VariableDeclarationStatement model);

}
